<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../templates/principal.xhtml">

    <ui:define name="content" id="content">
        <h:form id="frmEndereco">
            <p:growl id="messages" life="5000" />
            
            <p:panel id="panel" header="Bem Vindo ao Cadastro de Endereços" style="text-align: center">

                <p:dataTable id="tabEndereco" widgetVar="wtabEndereco" var="endereco" value="#{enderecoBean.lazyModelEndereco}" filterEvent="enter"
                             lazy="true" paginator="true" rows="15" paginatorPosition="top" emptyMessage="Nenhum Registro Retornado ..." style="text-align: left">

                    <f:facet name="header">
                        <div style="text-align: right">
                            <p:commandButton value="Pesquisar Endereço Cadastrado" icon="ui-icon-search" title="Pesquisar" onclick="pesquisaDialog.show()" type="button" />
                        </div>
                    </f:facet>

                    <p:column headerText="C.E.P." sortBy="#{endereco.numCep}" style="width:50px !important;">
                        <h:outputText value="#{endereco.numCep}" />
                    </p:column>

                    <p:column headerText="Descrição" sortBy="#{endereco.dscLogradouro}" style="width:300px !important;">
                        <h:outputText value="#{endereco.dscLogradouro}" />
                    </p:column>

                    <p:column headerText="Bairro" sortBy="#{endereco.codBairro.dscBairro}" style="width:300px !important;">
                        <h:outputText value="#{endereco.codBairro.dscBairro}" />
                    </p:column>

                    <p:column headerText="Cidade" sortBy="#{endereco.codBairro.codCidade.dscCidade}" style="width:300px !important;">
                        <h:outputText value="#{endereco.codBairro.codCidade.dscCidade}" />
                    </p:column>

                    <p:column headerText="U.F." sortBy="#{endereco.codBairro.codCidade.codUf.codUf}" style="width:50px !important;">
                        <h:outputText value="#{endereco.codBairro.codCidade.codUf.codUf}" />
                    </p:column>

                    <p:column style="width: 10px">
                        <h:panelGrid columns="4" styleClass="actions" cellpadding="0">
                            <p:commandButton id="selectButton" update=":frmEndereco:panel, :frmEndereco:messages" 
                                             icon="ui-icon-search" title="Visualizar // Alterar Endereço" oncomplete="enderecoDialog.show()">
                                <f:setPropertyActionListener value="#{endereco}" target="#{enderecoBean.selectedEndereco}" />
                            </p:commandButton>

                            <p:commandButton id="excluirButton" update=":frmEndereco:panel, :frmEndereco:messages" 
                                             icon="ui-icon-trash" title="Excluir Endereço" oncomplete="confirmation.show()">
                                <f:setPropertyActionListener value="#{endereco}" target="#{enderecoBean.selectedEndereco}" />
                            </p:commandButton>
                        </h:panelGrid>
                    </p:column>
                    
                    <f:facet name="footer">
                        <div style="text-align: left;">
                            <p:commandButton id="incluirButton" actionListener="#{enderecoBean.preparaInserir}" 
                                             update=":frmEndereco:panel, :frmEndereco:messages" value="Novo Endereço"
                                             icon="ui-icon-pencil" title="Cadastrar Novo Endereço" oncomplete="enderecoDialog.show()" />
                        </div>
                    </f:facet>
                </p:dataTable>

                <p:dialog id="dialogEndereco" header="Detalhes Logradouro" widgetVar="enderecoDialog" resizable="true" dynamic="true"
                          width="600" showEffect="explode" hideEffect="explode" style="text-align: left">
                    <p:panel id="panelEndereco">
                        <h:panelGrid id="displayEndereco" columns="3" cellpadding="4">
                            <h:outputText value="C.E.P.:" />
                            <p:inputText id="inCep" value="#{enderecoBean.selectedEndereco.numCep}" style="width:100px; font-weight:bold;" />
                            <h:outputText value="" />

                            <h:outputText value="Descrição:" />
                            <p:inputText id="inDescricao" value="#{enderecoBean.selectedEndereco.dscLogradouro}" style="width:400px; font-weight:bold; text-transform:uppercase;" />
                            <h:outputText value="" />

                            <h:outputText value="Bairro:" />
                            <p:inputText id="inBairro" value="#{enderecoBean.selectedEndereco.codBairro.dscBairro}" readonly="true" style="width:400px; font-weight:bold; text-transform:uppercase;" />
                            <p:commandButton icon="ui-icon-search" title="Pesquisar" onclick="pesquisaBairroDialog.show()" type="button" />

                            <h:outputText value="Cidade:" />
                            <p:inputText id="inCidade" value="#{enderecoBean.selectedEndereco.codBairro.codCidade.dscCidade}" readonly="true" style="width:400px; font-weight:bold; text-transform:uppercase;" />
                            <h:outputText value="" />

                            <h:outputText value="U.F.:" />
                            <p:inputText id="inUf" value="#{enderecoBean.selectedEndereco.codBairro.codCidade.codUf.codUf}" readonly="true" style="width:50px; font-weight:bold; text-transform:uppercase;" />
                            <h:outputText value="" />
                        </h:panelGrid>

                        <p:commandButton value="Inserir" update=":frmEndereco:panel, :frmEndereco:messages"
                                         actionListener="#{enderecoBean.inserir}" oncomplete="enderecoDialog.hide()" />
                        <p:commandButton value="Alterar" update=":frmEndereco:panel, :frmEndereco:messages"
                                         actionListener="#{enderecoBean.alterar}" oncomplete="enderecoDialog.hide()" />
                    </p:panel>
                </p:dialog>

                <p:confirmDialog message="Confirma a Exclusão desse Logradouro: #{enderecoBean.selectedEndereco.dscLogradouro}?"
                                 header="Exclusão do Logradouro" severity="alert" widgetVar="confirmation">

                    <p:commandButton value="Sim" update=":frmEndereco:panel, :frmEndereco:messages" oncomplete="confirmation.hide(), enderecoDialog.hide()"
                                     actionListener="#{enderecoBean.excluir}" />
                    <p:commandButton value="Não" onclick="confirmation.hide(), enderecoDialog.hide()" type="button" />

                </p:confirmDialog>

                <p:dialog id="dialogPesquisa" header="Pesquisa dos Logradouros" widgetVar="pesquisaDialog" resizable="true" onHide="javascript:AbreJanela(false);"
                          width="600" showEffect="explode" hideEffect="explode" dynamic="true" position="right,top">
                    <p:panel id="panelPesquisa" style="text-align: left;">
                        <h:panelGrid id="displayPesquisa" columns="2" cellpadding="4">
                            <h:outputText value="" />
                            <p:messages />

                            <h:outputText value="C.E.P.:" />
                            <p:inputText id="numeroCep" value="#{enderecoBean.numeroCep}" style="width:100px; font-weight:bold;">
                                <p:ajax event="blur" process="@this"/>
                            </p:inputText>

                            <h:outputText value="Descrição:" />
                            <p:inputText id="descLogradouro" value="#{enderecoBean.descLogradouro}" style="width:400px; font-weight:bold; text-transform:uppercase;">
                                <p:ajax event="blur" process="@this"/>
                            </p:inputText>

                            <h:outputText value="Bairro:" />
                            <p:inputText id="descBairro" value="#{enderecoBean.descBairro}" style="width:400px; font-weight:bold; text-transform:uppercase;">
                                <p:ajax event="blur" process="@this"/>
                            </p:inputText>

                            <h:outputText value="Cidade:" />
                            <p:inputText id="descCidade" value="#{enderecoBean.descCidade}" style="width:400px; font-weight:bold; text-transform:uppercase;">
                                <p:ajax event="blur" process="@this"/>
                            </p:inputText>

                            <h:outputText value="U.F.:" />
                            <p:inputText id="descUf" value="#{enderecoBean.descUf}" style="width:50px; font-weight:bold; text-transform:uppercase;">
                                <p:ajax event="blur" process="@this" />
                            </p:inputText>
                        </h:panelGrid>
                        <p:commandButton id="pesqLogradouro" icon="ui-icon-search" value="Pesquisar" actionListener="#{enderecoBean.PesquisarEndereco}"
                                         oncomplete="pesquisaDialog.hide()" update=":frmEndereco:panel, :frmEndereco:messages, :frmEndereco:tabEndereco" 
                                         process="@form" onclick="javascript:AbreJanela(true);" />
                        <div id="conexao" name="conexao" style="visibility:hidden" align="center">
                            <p:fieldset legend="Aguarde ..." style="text-align: left">
                                <img src="../design/ajaxloading.gif" />
                            </p:fieldset>
                        </div>
                    </p:panel>
                </p:dialog>

                <p:dialog id="dialogPesquisaBairro" header="Pesquisa dos Bairros" widgetVar="pesquisaBairroDialog" resizable="true"
                          width="600" showEffect="explode" hideEffect="explode" position="right,top" dynamic="true">

                    <p:dataTable id="tabBairro" widgetVar="wtabBairro" var="bairro" value="#{bairroBean.lazyModel}" filterEvent="enter" 
                                 paginator="true" rows="5" lazy="true" emptyMessage="Nenhuma Bairro retornada ..." paginatorPosition="top">

                        <f:facet name="header">
                            Pesquise e selecione um Bairro
                        </f:facet>

                        <p:column headerText="Descrição" sortBy="#{bairro.dscBairro}" filterBy="#{bairro.dscBairro}" style="text-align: left; text-transform:uppercase;">
                            <h:outputText value="#{bairro.dscBairro}" />
                        </p:column>

                        <p:column headerText="Cidade" sortBy="#{bairro.codCidade.dscCidade}" filterBy="#{bairro.codCidade.dscCidade}" style="text-align: left; text-transform:uppercase;">
                            <h:outputText value="#{bairro.codCidade.dscCidade}" />
                        </p:column>

                        <p:column headerText="U.F." sortBy="#{bairro.codCidade.codUf.codUf}" filterBy="#{bairro.codCidade.codUf.codUf}" style="text-align: left; text-transform:uppercase;">
                            <h:outputText value="#{bairro.codCidade.codUf.codUf}" />
                        </p:column>

                        <p:column style="width: 10px">
                            <p:panelGrid styleClass="actions" columns="1">
                                <p:commandButton id="selectButtonCidade" update=":frmEndereco:panelEndereco, :frmEndereco:messages" 
                                                 icon="ui-icon-check" title="Selecionar Bairro" oncomplete="pesquisaBairroDialog.hide()">
                                    <f:setPropertyActionListener value="#{bairro}" target="#{enderecoBean.selectedBairro}" />
                                </p:commandButton>
                            </p:panelGrid>
                        </p:column>
                    </p:dataTable>
                </p:dialog>
            </p:panel>
        </h:form>
    </ui:define>
</ui:composition>